Pular para o conteúdo principal

08 - Criando um docker register privado

[[toc]]


Pre requisitos

  • Docker instalado na maquina
  • Openssl instalado na maquina

Passo a passo

Passo 1: Criando diretório para o certificado

mkdir -p /docker_data/certs/

Passo 2: Criando novo certificado

openssl req \
-newkey rsa:4096 -nodes -sha256 -keyout /docker_data/certs/domain.key \
-x509 -days 365 -out /docker_data/certs/domain.crt

So e obrigatorio informar o FQDN, que seria o nome do host + mais o dominio.

ex: debian.unidev.com.br <maquina>.<dominio>


Passo 3: Criando pasta para imagens

mkdir -p /docker_data/images/

Instalando o docker register

Buscando a imagem no docker hub

docker search register

Instalando o container do do docker register

docker run -d -p 5000:5000 \
-v /docker_data/images:/var/lib/registry \
-v /docker_data/certs:/certs \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \
-e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \
--restart on-failure \
--name uniregistry \
registry

Enviando imagem para novo register

Baixando imgem do nginx

docker pull nginx

# Para ver as imagens
docker images

Criando uma tag, para salvar imagem no novo registry

docker tag nginx localhost:5000/nginx 

enviar imagem para registry

docker push localhost:5000/nginx

## Use para verificar se a imagem foi salva

ls -lia /docker_data/images/docker/registry/v2/repositories


Configurando os Clients para "Enxergar" o Nosso Registry Privado

Para que o cliente enxerge o novo registry é necessario o certificado domain.crt criando anteriomente

  • Por isso copie o certificado para as maquinas ao qual deseja que veja o registry

crie uma pasta onde ficarar o certificado e o coloque lá

mkdir -p /etc/docker/certs.d/debian.unidev.com.br:5000/

# movendo certificado que estava numa pasta

cp /home/uni/Documentos/Compartilhado/domain.crt /etc/docker/certs.d/debian.unidev.com.br:5000/

Adicionando host do registry na tabela host

Para isso é necessario ter o ip do servidor, (isso se o servidor for local, caso tenha um dns na empresa não é necessario esse passo)

echo 192.168.0.33 debian.unidev.com.br >> /etc/hosts

Baixando do registry privado

docker pull  <resistry>/<image>:<version>

#ex
docker pull debian.unidev.com.br:5000/nginx:latest

Enviando images para o registry

Criando uma tag

docker tag <id-imagem> <endereco-registry>/<nome-tag>:<versao>

# ex:

docker tag b20db607cf17 debian.unidev.com.br:5000/hello-world-privado:1.1

Enviando para registry

docker push <imagem com tag criada>

#ex
docker push debian.unidev.com.br:5000/hello-world-privado:1.1

Baixando imagem enviada

docker pull  <resistry>/<image>:<version>

#ex
docker pull debian.unidev.com.br:5000/hello-world-privado:1.1